package com.ym.common.constant;

import com.ym.common.enums.LoginMethodEnum;
import com.ym.common.enums.UserUserTypeEnum;

/**
 * 登录对象
 *
 * @author: 李涛
 * @version: 2020年08月17日 13:43
 */
public interface UserDetails {

	/**
	 * 当前登录人ID
	 *
	 * @return
	 */
	Long getId();

	/**
	 * 当前登录人账号
	 *
	 * @return
	 */
	String getAccount();

	/**
	 * 当前登录人昵称
	 *
	 * @return
	 */
	String getUsername();

	/**
	 * 当前登录人密码
	 *
	 * @return
	 */
	String getPassword();

	/**
	 * 当前盐值
	 *
	 * @return
	 */
	String getSalt();

	/**
	 * 当前用户类型
	 *
	 * @return
	 */
	UserUserTypeEnum getUserTypeEnum();

	/**
	 * 当前用户登录方式
	 *
	 * @return
	 */
	LoginMethodEnum getLoginMethod();

	/**
	 * 设置用户登录方式
	 *
	 * @return
	 */
	void setLoginMethod(LoginMethodEnum loginMethodEnum);

	/**
	 * 用户状态
	 *
	 * @return
	 */
	String state();

	/**
	 * 获取公钥
	 *
	 * @return
	 */
	String getAppKey();

	/**
	 * 获取私钥
	 *
	 * @return
	 */
	String getAppSecret();

}
